package com.hui.service;

import com.hui.bean.RecordBean;
import com.hui.bean.StudentBean;

import java.util.List;

/**
 * 学生相关业务层接口
 */
public interface IStudentService {

    /**
     * 得到所有的学生信息
     * @return 返回一个装有所有学生的list集合
     */
    List<StudentBean> findAllStudents();


    /**
     * 通过条件找到学生信息，通过条件查询，且的关系
     * @param studentName  学生姓名
     * @param className     班级名称
     * @param roomAddress   房间地址
     * @return  返回一个装有相关查询条件学生的list集合
     */
    List<StudentBean> findStudentsByCondition(String studentName, String className, String roomAddress);

    /**
     * 添加一个学生信息
     * 如果添加成功， 返回true
     * 如果添加失败，返回false
     * @param studentBean
     * @return 是否添加成功
     */
    boolean addStudentInRoom(StudentBean studentBean);

    /**
     * 通过学生的id得到一个学生的信息,包括学生所在的班级信息
     * @param studentId 学生的id
     * @return 返回一个学生的实体
     */
    StudentBean showStudentInfoByStudentId(int studentId);

    /**
     * 从房间里面删除学生通过学生的id
     *
     * 如果删除成功，返回true
     * 如果删除失败，返回false
     * @param studentId 学生id
     * @return 是否删除成功
     */
    boolean deleteStudentFromRoomByStudentId(int studentId);

    /**
     * 学生换房操作
     * 男生只能换男寝室
     * 女生只能换女寝室
     * 查询数据的时候要加上性别字段
     * @param studentId 学生id
     * @param newRoomId 新房间id
     * @return
     */
    boolean  changeStudentInRoom(int studentId, int oldRoomId, int newRoomId);

    /**
     * 查询一个房间下的所有的检修记录
     * @param RoomId  房间id
     * @return 返回一个房间下所有的检修历史记录的list集合
     */
    List<RecordBean> getRecordesByRoomId(int RoomId);

}
